From cb84b989ee11d2368ec78e9669bb72f8c7a95c03 Mon Sep 17 00:00:00 2001 From: David Vrabel Date: Mon, 16 Dec 2013 10:51:24 +0100 Subject: [PATCH] evtchn/fifo: map correct pages when guest is HVM If a HVM guest attempts to use the FIFO-based ABI it will not receive any events and destroying the guest may crash Xen or trigger an assert when attempting to unmap a control block page. This occurs because Xen maps the wrong page for both the control blocks and the event arrays. In map_guest_page(), use the MFN of the guest's page and not the GFN when calling map_domain_page_global(). Reported-by: Boris Ostrovsky Signed-off-by: David Vrabel --- xen/common/event_fifo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/common/event_fifo.c b/xen/common/event_fifo.c index 6048784bc6..b0d3fc2e25 100644 --- a/xen/common/event_fifo.c +++ b/xen/common/event_fifo.c @@ -284,7 +284,7 @@ static int map_guest_page(struct domain *d, uint64_t gfn, void **virt) return -EINVAL; } - *virt = map_domain_page_global(gfn); + *virt = __map_domain_page_global(p); if ( !*virt ) { put_page_and_type(p); -- 2.30.2